import * as c from './core';

module.exports = (r) => {
    r.get('/:page/:pagesize', ctx => c.get(ctx.params.pagesize, ctx.params.page, ctx.query, ctx.request.user).then(ctx.done, ctx.fail));
    r.get('/', ctx => c.getUser(ctx.query, ctx.request.user).then(ctx.done, ctx.fail));
    r.get('/:id', ctx => c.getUserById(ctx.params.id).then(ctx.done, ctx.fail));
    r.post('/', ctx => c.add(ctx.request.body).then(ctx.done, ctx.fail));
    r.post('/logout', ctx => c.logOut(ctx).then(ctx.done, ctx.fail));
    r.put('/', ctx => c.edit(ctx.request.body).then(ctx.done, ctx.fail));
    r.put('/complementUserInfo', ctx =>
        c.edit(ctx.request.body).then(user => {
            ctx.body = c.buildLoginToken(user);
        }),
    );
    r.put('/resetAdminUserPwd', ctx => c.resetAdminUserPwd(ctx.request.body).then(ctx.done, ctx.fail));
    r.put('/edit/:id/:status', ctx => c.editStatus(ctx.params.id, ctx.params.status).then(ctx.done, ctx.fail));
    r.put('/editpwd', ctx => c.changePwd(ctx.request.body).then(ctx.done, ctx.fail));
    r.delete('/:id', ctx => c.del(ctx.params.id).then(ctx.done, ctx.fail));

    r.get('/export/salesman/csv', ctx => c.exportCsv(ctx.query, ctx.request.user, ctx).then(ctx.done, ctx.fail));
};
